$(document).ready(function() {
	
/*******************************************************************************************************************************/
/************************************* LOGIN ***********************************************************************************/
/*******************************************************************************************************************************/

	$("#loginForm").submit(function(event) {
		console.log("logeando...");
		event.preventDefault();
		if ($("#usuario").val().length > 0 && $("#pass").val().length > 0) {
			 $.ajax({
				 url:"http://bolsacetic.esy.es/Proyecto_PHP/controlador.php",
				 //url:"http://192.168.17.7/Bolsacetic/controlador.php",
				 type:"POST",
				 data:$("#loginForm").serialize(),
				 success:function(data){
					 console.log("success");
					 console.log(data);
					 if (data == "ERR-DATOS") {			
						console.log("fracaso");
						$("#fracaso").delay(500).fadeIn("slow");
					} else if ($("#tipoCE :radio:checked").val()==0){//Candidato
						//datos personales	
						var posini1 = data.indexOf("{");
						var posfin1 = data.indexOf("}");
						var jSonPersonales = $.parseJSON(data.substring(posini1, posfin1+1));
						$("#nif").val(jSonPersonales._nif); 
						$("#nombreCDP").val(jSonPersonales._nombre);
						$("#ape1").val(jSonPersonales._ape1);
						$("#ape2").val(jSonPersonales._ape2);	
						$("#fecha_nac").val(jSonPersonales._fechaNac);	
						if (jSonPersonales._sexo == 0){
							$("#hombre").prop('checked', true);
						}else if (jSonPersonales._sexo == 1){
							$("#mujer").prop('checked', true);
						}
						$("#nacionalidad").val(jSonPersonales._nacionalidad);	
						$("#direccion").val(jSonPersonales._direccion);
						$("#municipio").val(jSonPersonales._municipio);
						$("#cp").val(jSonPersonales._cp);	
						$("#pais").val(jSonPersonales._pais);
						$("#tfno1").val(jSonPersonales._tfno1);
						$("#tfno2").val(jSonPersonales._tfno2);
						$("#tfno3").val(jSonPersonales._tfno3);
						$("#fax").val(jSonPersonales._fax);
						$("#mail").val(jSonPersonales._mail);
						$("#movil_notif").val(jSonPersonales._notificacion);						
						
						//formación
						var nuevaCadena = data.substring(posfin1+2,data.length);
						var posini2 = nuevaCadena.indexOf("{");
						var posfin2 = nuevaCadena.indexOf("}");
						var jSonFormacion = $.parseJSON(nuevaCadena.substring(posini2, posfin2+1));
						$("#tit_reglada").val(jSonFormacion._titReglada); 
						$("#fecha_fin_Form").val(jSonFormacion._fechaF); 
						$("#centro").val(jSonFormacion._centro); 
						
						//experiencia
						nuevaCadena = nuevaCadena.substring(posfin2+2,nuevaCadena.length);
						var posini3 = nuevaCadena.indexOf("{");
						var posfin3 = nuevaCadena.indexOf("}");
						var jSonExperiencia = $.parseJSON(nuevaCadena.substring(posini3, posfin3+1));
						$("#ocupacion").val(jSonExperiencia._ocupacion); 
						$("#empresa").val(jSonExperiencia._empresa); 
						$("#fecha_fin_exp").val(jSonExperiencia._fechaF); 
						$("#nivel").val(jSonExperiencia._nivel); 
						$("#duracion").val(jSonExperiencia._duracion); 
						$("#descripcion").val(jSonExperiencia._descripcion); 
 
							//conocimientos
						nuevaCadena = nuevaCadena.substring(posfin3+2,nuevaCadena.length);
						var posini4 = nuevaCadena.indexOf("[");
						var posfin4 = nuevaCadena.indexOf("]");
						var jSonConocimientos= $.parseJSON(nuevaCadena.substring(posini4, posfin4+1));
						for (var i=0; i<jSonConocimientos.length; i++){
							//$("ul#listaCon").append('<li>'+jSonConocimientos[i]+'</li>');
							$('ul#listaCon').append($('<li/>', { 
												'data-icon': "delete"
												}).append($('<a/>', { 
													'text': jSonConocimientos[i]												
												})));
						}
						 							
						//$("ul#listaCon").listview('refresh');
						
 
							//idiomas
						nuevaCadena = nuevaCadena.substring(posfin4+2,nuevaCadena.length);
						var posini5 = nuevaCadena.indexOf("[");
						var posfin5 = nuevaCadena.indexOf("]");
						var jSonIdiomas= $.parseJSON(nuevaCadena.substring(posini5, posfin5+1));							
						//euskera							
						$("select#habladoEus option").filter(function() {
						   return $(this).val() == jSonIdiomas[0]._nvlHablado; 
						}).prop('selected', true);
						$("select#escritoEus option").filter(function() {
						   return $(this).val() == jSonIdiomas[0]._nvlEscritura; 
						}).prop('selected', true);
						$("select#leidoEus option").filter(function() {
						   return $(this).val() == jSonIdiomas[0]._nvlLectura; 
						}).prop('selected', true);	
						//ingles
						$("select#habladoIng option").filter(function() {
						   return $(this).val() == jSonIdiomas[1]._nvlHablado; 
						}).prop('selected', true);
						$("select#escritoIng option").filter(function() {
						   return $(this).val() == jSonIdiomas[1]._nvlEscritura; 
						}).prop('selected', true);
						$("select#leidoIng option").filter(function() {
						   return $(this).val() == jSonIdiomas[1]._nvlLectura; 
						}).prop('selected', true);
 
							//otros datos
						nuevaCadena = nuevaCadena.substring(posfin5+2,nuevaCadena.length);
						var posini6 = nuevaCadena.indexOf("{");
						var posfin6 = nuevaCadena.indexOf("}");
						var jSonOtrosDatos= $.parseJSON(nuevaCadena.substring(posini6, posfin6+1));
						$("#tipo_carnet").val(jSonOtrosDatos._tipoCarnet);	
						if (jSonOtrosDatos._vehiculo == 0){
							$("#vehic_propio_no").prop('checked', true);
						}else if (jSonOtrosDatos._vehiculo == 1){
							$("#vehic_propio").prop('checked', true);
						}
						
						$.mobile.changePage("#dPersonales"); 
					}
					else if($("#tipoCE :radio:checked").val()==1){//Empresa
						var posiniE = data.indexOf("{");
						var posfinE = data.indexOf("}");
						var jSonEmpresa = $.parseJSON(data.substring(posiniE, posfinE+1));
						$("#cif").val(jSonEmpresa._cif); 
						$("#nombreE").val(jSonEmpresa._nombre);
						$("#mailE").val(jSonEmpresa._mail);
						$("#persona_cont").val(jSonEmpresa._personaCont);
						$("#tfnoE").val(jSonEmpresa._tfno);
						$("#domicilioE").val(jSonEmpresa._domicilio);
						$("#descripcionE").val(jSonEmpresa._descripcion);
						$.mobile.changePage("#dDatosEmpresa"); 
					}
				 },
				 error:function(p,t,e){
					 console.log("error");
					 console.log(t);
					 console.log(e);
				 },
				 complete:function(){
				 	console.log("completo");
				 }
			 });
			 				 
		} else {
			console.log("no valida");
			$("#fracaso").delay(500).fadeIn("slow");
		}
	});
	
	


/*******************************************************************************************************************************/
/************************************* MËTODOS PARA LA VALIDACION DEL REGISTRO *************************************************/
/*******************************************************************************************************************************/

	function valida_nif(value) { 
		 value = value.toUpperCase();	 
		 // Basic format test
		 if ( !value.match('((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)') ) {
		  return false;
		 }	 
		 // Test NIF
		 if ( /^[0-9]{8}[A-Z]{1}$/.test( value ) ) {
		  return ( "TRWAGMYFPDXBNJZSQVHLCKE".charAt( value.substring( 8, 0 ) % 23 ) === value.charAt( 8 ) );
		 }
		 // Test specials NIF (starts with K, L or M)
		 if ( /^[KLM]{1}/.test( value ) ) {
		  return ( value[ 8 ] === String.fromCharCode( 64 ) );
		 }
		 return false;
	}
	
	
	function valida_nie(value) {
		 value = value.toUpperCase();	 
		 // Basic format test
		 if ( !value.match('((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)') ) {
		  return false;
		 }	 
		 // Test NIE
		 //T
		 if ( /^[T]{1}/.test( value ) ) {
		  return ( value[ 8 ] === /^[T]{1}[A-Z0-9]{8}$/.test( value ) );
		 }	 
		 //XYZ
		 if ( /^[XYZ]{1}/.test( value ) ) {
		  return (
		   value[ 8 ] === "TRWAGMYFPDXBNJZSQVHLCKE".charAt(
		    value.replace( 'X', '0' )
		     .replace( 'Y', '1' )
		     .replace( 'Z', '2' )
		     .substring( 0, 8 ) % 23
		   )
		  );
		 }
		 return false;
	}
	 
	  
	function valida_cif(value) {
		 var sum,
		  num = [],
		  controlDigit;	  
		 value = value.toUpperCase();	  
		 // Basic format test
		 if ( !value.match( '((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)' ) ) {
		  return false;
		 }	  
		 for ( var i = 0; i < 9; i++ ) {
		  num[ i ] = parseInt( value.charAt( i ), 10 );
		 }	  
		 // Algorithm for checking CIF codes
		 sum = num[ 2 ] + num[ 4 ] + num[ 6 ];
		 for ( var count = 1; count < 8; count += 2 ) {
		  var tmp = ( 2 * num[ count ] ).toString(),
		   secondDigit = tmp.charAt( 1 );
		   
		  sum += parseInt( tmp.charAt( 0 ), 10 ) + ( secondDigit === '' ? 0 : parseInt( secondDigit, 10 ) );
		 }	  
		 // CIF test
		 if ( /^[ABCDEFGHJNPQRSUVW]{1}/.test( value ) ) {
		  sum += '';
		  controlDigit = 10 - parseInt( sum.charAt( sum.length - 1 ), 10 );
		  value += controlDigit;
		  return ( num[ 8 ].toString() === String.fromCharCode( 64 + controlDigit ) || num[ 8 ].toString() === value.charAt( value.length - 1 ) );
		 }	  
		 return false; 
	}
	
	
	function valida_pass(pass){
		if(pass.length>=8){
			return true;
		}else{
			return false;
		}
	}
	function valida_passrep(pass, passrep){
		if(passrep.length>=8 && pass==passrep){
			return true;
		}else{
			return false;
		}
	}
	
	function valida_mail(mail){
		var arroba = mail.indexOf('@');
		var punto = mail.indexOf('.', arroba);
		if(mail!="" && arroba!=-1 && punto!=-1){
			return true;
		}else{
			return false;
		}
	}
	
	function notifica(id,mensaje){
		$("#"+id).html(mensaje);
	}
	
	function notifica_limpia_candidato(){
		notifica("errUsuario","");
		notifica("errPass","");
		notifica("errPassRep","");
	}
	
	function notifica_limpia_empresa(){
		notifica("errUsuario","");
		notifica("errPass","");
		notifica("errPassRep","");
		notifica("errMail","");
	}


	$("#saveCandidato").click(function(event){
		console.log('validando Candidato...');
		notifica_limpia_candidato();
		if(!valida_nif($("#usuarioC").val()) && !valida_nie($("#usuarioC").val())){
			notifica("errUsuario","El DNI, NIF o NIE introducido no es correcto");
			event.preventDefault();
		}
		if(!valida_pass($("#passC").val())){
			notifica("errPass","La contraseña debe tener un mínimo de 8 caracteres");
			event.preventDefault();
		}
		if(!valida_passrep($("#passC").val(), $("#passrepC").val())){
			notifica("errPassRep","Debe introducir la misma contraseña con un mínimo de 8 caracteres");
			event.preventDefault();
		}
		else{		
			$.post(
				"http://bolsacetic.esy.es/Proyecto_PHP/controlador.php",
				$("#registroCandidatoForm").serialize(),
				function(data){
	                if(data == "OK"){
	                    $("#nif").val($("#usuarioC").val()); 
					 	$("#nombreCDP").val($("#nombreC").val()); 
					 	$("#ape1").val($("#apell1").val()); 
					 	$("#ape2").val($("#apell2").val()); 						 								
	                    $.mobile.changePage("#dPersonales"); 
	                } else {
	                    $("#fracaso").delay(500).fadeIn("slow"); 
	                }
		        }
		     );
		}
	});


	$("#saveEmpresa").click(function(event){
		console.log('validando Empresa...');
		event.preventDefault();
		notifica_limpia_empresa();
		if(!valida_cif($("#usuarioE").val())){
			notifica("errUsuario","El CIF introducido no es correcto");				
		}
		if(!valida_pass($("#pass").val())){
			notifica("errPass","La contraseña debe tener un mínimo de 8 caracteres");
		}
		if(!valida_passrep($("#pass").val(), $("#passrep").val())){
			notifica("errPassRep","Debe introducir la misma contraseña con un mínimo de 8 caracteres");
		}
		if($("#mailER").val().lenght>0 && !valida_mail($("#mailER").val())){
			notifica("errMail","Debe introducir un eMail válido");
		}
		else{
			$.post(
				"http://bolsacetic.esy.es/Proyecto_PHP/controlador.php",
				$("#registroEmpresaForm").serialize(),
				function(data){
	                if(data == "OK"){
	                    $("#cif").val($("#usuarioE").val()); 
					 	$("#nombreE").val($("#nombreER").val()); 
					 	$("#persona").val($("#personaER").val()); 
					 	$("#mail").val($("#mailER").val()); 
					 	$("#telefono").val($("#telefonoER").val());
					 	$("#domicilio").val($("#domicilioER").val());
					 	$("#desc").val($("#descER").val());	
	                    $.mobile.changePage("#dDatosEmpresa"); 
	                } else {
	                    $("#fracaso").delay(500).fadeIn("slow"); 
	                }
		        }
		     );
		}
	});



/*******************************************************************************************************************************/
/************************************* ACTUALIAR CANDIDATO ***********************************************************************************/
/*******************************************************************************************************************************/

	var datosIndexCandidato = {
	   accion: '',
	   //personales
	   nif: '',
	   nombre: '',
	   ape1: '',
	   ape2: '',
	   fecha_nac: '',
	   sexo: '',
	   nacionalidad: '',
	   direccion: '',
	   municipio: '',
	   cp: '',
	   pais: '',
	   tfn1: '',
	   tfn2: '',
	   tfn3: '',
	   fax: '',
	   mail: '',
	   tipo_carnet: '',
	   vehiculo: '',
	   //formacion
	   tit_reglada: '',
	   fecha_fin_form: '',
	   ocupacion: '',
	   empresa: '',
	   fecha_fin_exp: '',
	   nivel: '',
	   duracion: '',
	   descripcion: '',
	   e_nvl_escrito: '',
	   e_nvl_leido: '',
	   e_nvl_hablado: '',
	   i_nvl_escrito: '',
	   i_nvl_leido: '',
	   i_nvl_hablado: '',
	   //conocimiento
	   arrayConocimientos: []   
	};
	
	var aConocimientos = new Array();


		
	$("#dPersonales").on("pagebeforeload", function( event, data ) {
		datosIndexCandidato = {
		   accion: 'actualizarDatosCandidato',
		   //personales
		   nif: $("#nif"),
		   nombre: $("#nombre"),
		   ape1: $("#ape1"),
		   ape2: $("#ape2"),
		   fecha_nac: $("#fecha_nac"),
		   sexo: $("#sexo"),
		   nacionalidad: $("#nacionalidad"),
		   direccion: $("#direccion"),
		   municipio: $("#municipio"),
		   cp: $("#cp"),
		   pais: $("#pais"),
		   tfn1: $("#tfn1"),
		   tfn2: $("#tfn2"),
		   tfn3: $("#tfn3"),
		   fax: $("#fax"),
		   mail: $("#mail"),
		   tipo_carnet: $("#tipo_carnet"),
		   vehiculo: $("#vehiculo"),
		   //formacion
		   tit_reglada: $("#tit_reglada"),
		   fecha_fin_form: $("#fecha_fin"),
		   ocupacion: $("#ocupacion"),
		   empresa: $("#empresa"),
		   fecha_fin_exp: $("#fecha_fin"),
		   nivel: $("#nivel"),
		   duracion: $("#duracion"),
		   descripcion: $("#descripcion"),
		   e_nvl_escrito: $("#escritoEus"),
		   e_nvl_leido: $("#leidoEus"),
		   e_nvl_hablado: $("#habladoEus"),
		   i_nvl_escrito: $("#escritoIng"),
		   i_nvl_leido: $("#leidoIng"),
		   i_nvl_hablado: $("#habladoIng"),
		   //conocimiento
		   arrayConocimientos: aConocimientos};
	});	
	
	
	$("#dFormacion").on("pagebeforeload", function( event, data ) {
		datosIndexCandidato = {
			accion: 'actualizarDatosCandidato',
		   //personales
		   nif: $("#nif"),
		   nombre: $("#nombre"),
		   ape1: $("#ape1"),
		   ape2: $("#ape2"),
		   fecha_nac: $("#fecha_nac"),
		   sexo: $("#sexo"),
		   nacionalidad: $("#nacionalidad"),
		   direccion: $("#direccion"),
		   municipio: $("#municipio"),
		   cp: $("#cp"),
		   pais: $("#pais"),
		   tfn1: $("#tfn1"),
		   tfn2: $("#tfn2"),
		   tfn3: $("#tfn3"),
		   fax: $("#fax"),
		   mail: $("#mail"),
		   tipo_carnet: $("#tipo_carnet"),
		   vehiculo: $("#vehiculo"),
		   //formacion
		   tit_reglada: $("#tit_reglada"),
		   fecha_fin_form: $("#fecha_fin"),
		   ocupacion: $("#ocupacion"),
		   empresa: $("#empresa"),
		   fecha_fin_exp: $("#fecha_fin"),
		   nivel: $("#nivel"),
		   duracion: $("#duracion"),
		   descripcion: $("#descripcion"),
		   e_nvl_escrito: $("#escritoEus"),
		   e_nvl_leido: $("#leidoEus"),
		   e_nvl_hablado: $("#habladoEus"),
		   i_nvl_escrito: $("#escritoIng"),
		   i_nvl_leido: $("#leidoIng"),
		   i_nvl_hablado: $("#habladoIng"),
		   //conocimiento
		   arrayConocimientos: aConocimientos};
	});
	
	$("#dConocimientos").on("pagebeforeload", function( event, data ) {
		datosIndexCandidato = {
			accion: 'actualizarDatosCandidato',
		   //personales
		   nif: $("#nif"),
		   nombre: $("#nombre"),
		   ape1: $("#ape1"),
		   ape2: $("#ape2"),
		   fecha_nac: $("#fecha_nac"),
		   sexo: $("#sexo"),
		   nacionalidad: $("#nacionalidad"),
		   direccion: $("#direccion"),
		   municipio: $("#municipio"),
		   cp: $("#cp"),
		   pais: $("#pais"),
		   tfn1: $("#tfn1"),
		   tfn2: $("#tfn2"),
		   tfn3: $("#tfn3"),
		   fax: $("#fax"),
		   mail: $("#mail"),
		   tipo_carnet: $("#tipo_carnet"),
		   vehiculo: $("#vehiculo"),
		   //formacion
		   tit_reglada: $("#tit_reglada"),
		   fecha_fin_form: $("#fecha_fin"),
		   ocupacion: $("#ocupacion"),
		   empresa: $("#empresa"),
		   fecha_fin_exp: $("#fecha_fin"),
		   nivel: $("#nivel"),
		   duracion: $("#duracion"),
		   descripcion: $("#descripcion"),
		   e_nvl_escrito: $("#escritoEus"),
		   e_nvl_leido: $("#leidoEus"),
		   e_nvl_hablado: $("#habladoEus"),
		   i_nvl_escrito: $("#escritoIng"),
		   i_nvl_leido: $("#leidoIng"),
		   i_nvl_hablado: $("#habladoIng"),
		   //conocimiento
		   arrayConocimientos: aConocimientos};
	});
	
	//botones guardar
	$("#guardar1").bind("click", function(event){
		console.log("primer guardar");
		console.log(datosIndexCandidato);
		$.ajax({
			 url:"http://bolsacetic.esy.es/Proyecto_PHP/controlador.php",
			 //url:"http://192.168.17.7/Bolsacetic/controlador.php",
			 type:"POST",
			 data:datosIndexCandidato,
			 success:function(data){
				 console.log("success");
				 console.log(data);
				 if(data=="ERR-UPDT"){
				 	console.log("fracaso");
				 	$("#fracaso1").delay(500).fadeIn("slow");						 	
				 }
			 },
			 error:function(p,t,e){
				 console.log("error");
				 console.log(t);
				 console.log(e);
			 },
			 complete:function(){
			 	console.log("completo");
			 }
		});
	});
	
	$("#guardar2").bind("click", function(event){
		$.ajax({
			 url:"http://bolsacetic.esy.es/Proyecto_PHP/controlador.php",
			 //url:"http://192.168.17.7/Bolsacetic/controlador.php",
			 type:"POST",
			 data:datosIndexCandidato,
			 success:function(data){
				 console.log("success");
				 console.log(data);
				 if(data=="ERR-UPDT"){
				 	console.log("fracaso");
				 	$("#fracaso1").delay(500).fadeIn("slow");						 	
				 }
			 },
			 error:function(p,t,e){
				 console.log("error");
				 console.log(t);
				 console.log(e);
			 },
			 complete:function(){
			 	console.log("completo");
			 }
		});
		
		
	});
	
	$("#guardar3").bind("click", function(event){
		$.ajax({
			 url:"http://bolsacetic.esy.es/Proyecto_PHP/controlador.php",
			 //url:"http://192.168.17.7/Bolsacetic/controlador.php",
			 type:"POST",
			 data:datosIndexCandidato,
			 success:function(data){
				 console.log("success");
				 console.log(data);
				 if(data=="ERR-UPDT"){
				 	console.log("fracaso");
				 	$("#fracaso1").delay(500).fadeIn("slow");						 	
				 }
				 $.mobile.changePage("#dConocimientos"); 
			 },
			 error:function(p,t,e){
				 console.log("error");
				 console.log(t);
				 console.log(e);
			 },
			 complete:function(){
			 	console.log("completo");
			 }
		});
		
	});		

	$('#botonAddConocimiento').click(function(event) {
		event.preventDefault();
	    var newCon = $('#descConocimiento').val();	
	    if(newCon != '') {
	        //$('ul#listaCon').append('<li><a>' + newCon + '</a><a class="deleteMe"></a></li>').listview('refresh');
	        $('ul#listaCon').append($('<li/>', { 
					'data-icon': "delete"
					}).append($('<a/>', { 
						'text': newCon												
					})));
			$("ul#listaCon").listview('refresh');
	        $('#descConocimiento').val('');
		}	
	});

});//Fin document.ready



